Skip to content

Conversation

@ronso0
Copy link
Member

@ronso0 ronso0 commented Oct 15, 2025

Should fix #14492

Also adds logging for OpenGLWindow' dragLeave event.
So if the fix doesn't work, check the log for
warning: OpenGLWindow: dragLeave event

Though I'm not familiar with QOpenGL and its event handling.
@m0dB and @acolombier are the pros here.

@jospezial
Copy link

Compiled main with this PR and I can't reproduce the issue.
Works a expected. Nothing in debug log when the mouse pointer leaves the waveform with held mouse button.
Perfect! Please merge.

@ronso0 ronso0 force-pushed the waveform-scratch-leave branch from b847d14 to c582fec Compare October 16, 2025 14:20
@ronso0
Copy link
Member Author

ronso0 commented Oct 16, 2025

Great, thanks for testing!

I added the 'open hand' cursor to indicate the drag behavior, like in the spinny
(requested in #14492 (comment))

@ronso0 ronso0 linked an issue Oct 16, 2025 that may be closed by this pull request
@ronso0 ronso0 force-pushed the waveform-scratch-leave branch from c582fec to 1bf31f8 Compare October 16, 2025 14:23
@ronso0 ronso0 changed the base branch from 2.6 to 2.5 October 16, 2025 14:23
@ronso0
Copy link
Member Author

ronso0 commented Oct 16, 2025

@djantti reported the issue also for 2.5
@jospezial can you reproduce it there, too?

(I just rebased this onto 2.5)

@jospezial
Copy link

can you reproduce it there, too?

I am not sure what you mean with "it" and "there". I have not tested 2.5 branch recently but in main the spinny has the issue as he describes it. Have not tested your new hand commit yet. Did you mean that with your question? But good idea.

@ronso0
Copy link
Member Author

ronso0 commented Oct 16, 2025

I mean the waveform issue. Can you try the 2.5 branch and check if that also has the sticky cursor issue?

@ronso0
Copy link
Member Author

ronso0 commented Oct 16, 2025

Will take a look at the spinny issue. Seems I overlooked/misunderstood that.

@jospezial
Copy link

I mean the waveform issue. Can you try the 2.5 branch and check if that also has the sticky cursor issue?

I have tried mixxx 2.5.3 rpmfusion in Fedorra rawhide and it has all the symptoms.

Copy link
Member

@acolombier acolombier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code's LGTM - didn't tested but seem to fix the issue. Let me know if you want me to merge or if you want to get the spinny fix in as well.

@ronso0
Copy link
Member Author

ronso0 commented Oct 16, 2025

Let's fix it with one flush.
(I'm not an english native, you know what I mean ; )

Give a day or so.

@daschuer
Copy link
Member

There was a funny dictionary for it www.phrasen.org but not reachable :-(

@ronso0
Copy link
Member Author

ronso0 commented Oct 18, 2025

I added a similiar fix for the spinny. Also needs to be tested.

@jospezial
Copy link

I added a similiar fix for the spinny. Also needs to be tested.

I tried this PR with main and 2.6 branch but the patch did not apply.

 * Applying 15498.patch ...
patching file src/widget/wwaveformviewer.cpp
patching file src/widget/wwaveformviewer.h
Hunk #1 succeeded at 67 (offset 4 lines).
patching file src/widget/wwaveformviewer.cpp
patching file src/widget/wspinnybase.cpp
Hunk #1 FAILED at 609.
1 out of 1 hunk FAILED -- saving rejects to file src/widget/wspinnybase.cpp.rej
patching file src/widget/wspinnybase.h
Hunk #1 succeeded at 74 (offset 2 lines).
patching file src/widget/wspinnybase.cpp
Hunk #1 succeeded at 490 with fuzz 1 (offset -11 lines).

So I compiled 2.5 branch where the patch applies cleanly.
The arrow does not change to hand on scrolling waveform. That commit has no effect.
Spinny works as expected.
No problems when leaving the spinny or scrolling waveform with pressed mouse button. Music plays on then.

@jospezial
Copy link

In 2.5 there is no setting for waveform acceleration.
It is set to
waveform type: RGB (GLSL) Is this the same?
overview: RGB

@djantti
Copy link
Contributor

djantti commented Oct 18, 2025

Awesome, this fixes the issue on my KDE test setup too. 👍

You do have to be a bit careful, since scratching will abruptly stop when the mouse pointer leaves the widget area. But it's still way better than it sticking. Also I'm not seeing any regressions on Gnome and there you can still go wild and use the entire screen for mouse scratching.

And as @jospezial mentioned, waveform scratching still uses an arrow pointer instead of an open hand pointer.

@ronso0
Copy link
Member Author

ronso0 commented Oct 18, 2025

You do have to be a bit careful, since scratching will abruptly stop when the mouse pointer leaves the widget area.

Yeah, I'm also worried about this.
We had a similar issue with the overview waveforms #13741 and for that the overview has a generous drag margin.

Dragging the play position is allowed only in the valid zone:
overview +-100 px vertically and +-50 px horizontally

Can you @djantti @jospezial confirm that the margin is respected with your Qt versions?
Not sure how to apply that to the waveform viewer as you seem to see Leave events when the cursor leaves the widget. ¹

IMO with the accelearated waveforms it's likely an issue with the event handling in QOpenGLWindow / OpenGLWindow.
Actually that should forward all unhandled events to WWaveformViewer.
@acolombier Any thought?


¹ FWIW with Qt 6.2.3 I see Leave events not when the cursor leaves the widget with button pressed, but on button release, either inside or outside the widget.

@acolombier
Copy link
Member

@acolombier Any thought?

I must admit I never really work closely with the OpenGL event handling part, and only @m0dB could confirm with certainty, tho looking at the code, I came to the same conclusion than you!

@djantti
Copy link
Contributor

djantti commented Oct 19, 2025

Can you @djantti @jospezial confirm that the margin is respected with your Qt versions?

I tested this on my Fedora KDE system with Qt 6.9.2 and the margin is indeed respected for the waveform overview. It's a nice safety feature for sure.

@ronso0
Copy link
Member Author

ronso0 commented Oct 21, 2025

Okay, thanks fo testing!
I'll try to implement the safe zone for waveform and spinny.

@ronso0
Copy link
Member Author

ronso0 commented Oct 21, 2025

The last commit reverts the stop on leave.
Now it checks for mouse buttons of move events. If no button is pressed, scracthing/pitch-bending should be canceled.
Not sure if these works as there might be quirks with QEvent, so please test!

@ronso0
Copy link
Member Author

ronso0 commented Oct 21, 2025

@djantti @jospezial

@ronso0 ronso0 added this to the 2.5.4 milestone Oct 21, 2025
@jospezial
Copy link

jospezial commented Oct 22, 2025

Latest changes do not work well.
When I scratch on the scrolling waveform and leave with button pressed the playing pauses even when button is released.
Plays on when I move the mouse without pressed button over its spinny (sometimes) or its scrolling waveform.

Mouse move into the scrolling waveform:

warning [Main]      ---- OpenGLWindow QEnterEvent(QPointF(3.08203,33.168))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2423813 pos=14.8203,35.125 scn=14.8203,35.125 gbl=14.8203,62.125 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2423821 pos=24.4375,37.0508 scn=24.4375,37.0508 gbl=24.4375,64.0508 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2423829 pos=31.3828,40.5195 scn=31.3828,40.5195 gbl=31.3828,67.5195 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending

Press button, move outside into other waveform (in this case), release button (does not play on):

warning [Main]      ---- OpenGLWindow QEnterEvent(QPointF(288.605,78.75))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseButtonPress ts=2800416 LeftButton pos=288.605,78.75 scn=288.605,78.75 gbl=288.605,105.75 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800423 btns=LeftButton pos=288.922,78.75 scn=288.922,78.75 gbl=288.922,105.75 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800447 btns=LeftButton pos=288.922,79.2656 scn=288.922,79.2656 gbl=288.922,106.266 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800455 btns=LeftButton pos=289.875,79.2656 scn=289.875,79.2656 gbl=289.875,106.266 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800463 btns=LeftButton pos=289.875,80.2656 scn=289.875,80.2656 gbl=289.875,107.266 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800471 btns=LeftButton pos=289.875,81.2656 scn=289.875,81.2656 gbl=289.875,108.266 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800575 btns=LeftButton pos=290.777,82.1641 scn=290.777,82.1641 gbl=290.777,109.164 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800583 btns=LeftButton pos=291.68,83.0703 scn=291.68,83.0703 gbl=291.68,110.07 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800591 btns=LeftButton pos=292.68,84.0703 scn=292.68,84.0703 gbl=292.68,111.07 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800599 btns=LeftButton pos=292.68,85.0703 scn=292.68,85.0703 gbl=292.68,112.07 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800607 btns=LeftButton pos=293.68,85.0703 scn=293.68,85.0703 gbl=293.68,112.07 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800767 btns=LeftButton pos=293.68,85.9375 scn=293.68,85.9375 gbl=293.68,112.938 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800775 btns=LeftButton pos=294.574,86.832 scn=294.574,86.832 gbl=294.574,113.832 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800791 btns=LeftButton pos=294.574,87.8203 scn=294.574,87.8203 gbl=294.574,114.82 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800799 btns=LeftButton pos=295.563,88.8047 scn=295.563,88.8047 gbl=295.563,115.805 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800807 btns=LeftButton pos=295.563,89.8047 scn=295.563,89.8047 gbl=295.563,116.805 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800823 btns=LeftButton pos=296.563,90.8047 scn=296.563,90.8047 gbl=296.563,117.805 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800839 btns=LeftButton pos=296.563,91.793 scn=296.563,91.793 gbl=296.563,118.793 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800854 btns=LeftButton pos=297.516,91.793 scn=297.516,91.793 gbl=297.516,118.793 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800871 btns=LeftButton pos=297.516,92.7227 scn=297.516,92.7227 gbl=297.516,119.723 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800887 btns=LeftButton pos=298.418,92.7227 scn=298.418,92.7227 gbl=298.418,119.723 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800921 btns=LeftButton pos=299.367,93.7109 scn=299.367,93.7109 gbl=299.367,120.711 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800927 btns=LeftButton pos=299.367,94.6602 scn=299.367,94.6602 gbl=299.367,121.66 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800943 btns=LeftButton pos=300.367,95.6602 scn=300.367,95.6602 gbl=300.367,122.66 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800959 btns=LeftButton pos=301.352,95.6602 scn=301.352,95.6602 gbl=301.352,122.66 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800985 btns=LeftButton pos=301.352,96.4688 scn=301.352,96.4688 gbl=301.352,123.469 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2800991 btns=LeftButton pos=302.301,96.4688 scn=302.301,96.4688 gbl=302.301,123.469 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801007 btns=LeftButton pos=303.301,97.4688 scn=303.301,97.4688 gbl=303.301,124.469 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801023 btns=LeftButton pos=303.301,98.4531 scn=303.301,98.4531 gbl=303.301,125.453 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801039 btns=LeftButton pos=304.227,98.4531 scn=304.227,98.4531 gbl=304.227,125.453 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801063 btns=LeftButton pos=304.227,99.2734 scn=304.227,99.2734 gbl=304.227,126.273 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801071 btns=LeftButton pos=305.18,99.2734 scn=305.18,99.2734 gbl=305.18,126.273 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801111 btns=LeftButton pos=306,100.227 scn=306,100.227 gbl=306,127.227 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801159 btns=LeftButton pos=306.762,100.988 scn=306.762,100.988 gbl=306.762,127.988 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801271 btns=LeftButton pos=307.27,101.5 scn=307.27,101.5 gbl=307.27,128.5 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801279 btns=LeftButton pos=308.168,101.5 scn=308.168,101.5 gbl=308.168,128.5 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801295 btns=LeftButton pos=309.168,102.5 scn=309.168,102.5 gbl=309.168,129.5 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801311 btns=LeftButton pos=310.168,103.5 scn=310.168,103.5 gbl=310.168,130.5 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801327 btns=LeftButton pos=311.168,104.5 scn=311.168,104.5 gbl=311.168,131.5 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801359 btns=LeftButton pos=313.156,105.484 scn=313.156,105.484 gbl=313.156,132.484 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801367 btns=LeftButton pos=314.156,106.484 scn=314.156,106.484 gbl=314.156,133.484 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QEvent(Leave, 0x7ffcf4dcbf10)
warning [Main]      ---- OpenGLWindow QEnterEvent(QPointF(315.156,0.484375))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801375 pos=315.156,0.484375 scn=315.156,0.484375 gbl=315.156,134.484 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801391 pos=316.156,1.48438 scn=316.156,1.48438 gbl=316.156,135.484 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801399 pos=316.156,2.48438 scn=316.156,2.48438 gbl=316.156,136.484 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801416 pos=317.141,2.48438 scn=317.141,2.48438 gbl=317.141,136.484 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]
warning [Main]      .
warning [Main] VisualPlayPosition::calcOffsetAtNextVSync "[Channel1]" no transport (offset > maxOffset)
debug [Main] "[Channel1]" refToVSync: 72473 data.m_callbackEntrytoDac: 15102
debug [Main] "[Channel1]" refToVSync: 27409 data.m_callbackEntrytoDac: 23151
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2801487 pos=321.094,6.44141 scn=321.094,6.44141 gbl=321.094,140.441 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseButtonRelease ts=2802567 LeftButton pos=327.973,17.8125 scn=327.973,17.8125 gbl=327.973,151.813 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2805567 pos=328.859,18.6953 scn=328.859,18.6953 gbl=328.859,152.695 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2805583 pos=328.859,19.3164 scn=328.859,19.3164 gbl=328.859,153.316 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2805591 pos=328.859,20.3047 scn=328.859,20.3047 gbl=328.859,154.305 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=2806591 pos=13.8008,60.0586 scn=13.8008,60.0586 gbl=13.8008,194.059 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QEvent(Leave, 0x7ffcf4dcbf10)
warning [Main] VisualPlayPosition::calcOffsetAtNextVSync "[Channel1]" no transport (offset > maxOffset)
debug [Main] "[Channel1]" refToVSync: 76483 data.m_callbackEntrytoDac: 14784
debug [Main] "[Channel1]" refToVSync: 15074 data.m_callbackEntrytoDac: 23197
warning [Main] VisualPlayPosition::calcOffsetAtNextVSync "[Channel1]" no transport (offset > maxOffset)
debug [Main] "[Channel1]" refToVSync: 71420 data.m_callbackEntrytoDac: 14739
debug [Main] "[Channel1]" refToVSync: 26744 data.m_callbackEntrytoDac: 23174

     

mouse again on scrolling waveform (plays on):

warning [Main]      ---- OpenGLWindow QEnterEvent(QPointF(10.2969,62.4219))
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=3240018 pos=37.3828,62.4219 scn=37.3828,62.4219 gbl=37.3828,89.4219 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending
warning [Main]      .
warning [Main]      ---- OpenGLWindow QMouseEvent(MouseMove ts=3240026 pos=62.8164,62.4219 scn=62.8164,62.4219 gbl=62.8164,89.4219 dev=QInputDevice(QPointingDevice("touchpad" TouchPad id=8589934592 seat=seat0 ptrType=Finger maxPts=10))
warning [Main]      .
warning [Main]      moved, no button -> stop scratching and bending

@jospezial
Copy link

And still no hand icon on scrolling waveform.

@ronso0 ronso0 marked this pull request as draft October 23, 2025 10:36
@ronso0
Copy link
Member Author

ronso0 commented Oct 23, 2025

Latest changes do not work well.
When I scratch on the scrolling waveform and leave with button pressed the playing pauses even when button is released.
Plays on when I move the mouse without pressed button over its spinny (sometimes) or its scrolling waveform.

Please redo and share the corresponding (part of the) log.
We need to figure where and when the release is reported.
__
Should have mentioned that I changed only the waveform event handling, not the spinny, because we need to find a working fix first, then reuse for the spinny.

@jospezial
Copy link

Please redo and share the corresponding (part of the) log.
We need to figure where and when the release is reported.

Added the debug log in my upper post. Moving the mouse over is very spammy.

@jospezial
Copy link

Added some missing lines in the middle.

@ronso0
Copy link
Member Author

ronso0 commented Oct 24, 2025

Thank you for the extensive report!
However it's pretty hard to debug this remotely, ie. without hardware access.

I'll remove the hacks/fixes and install logging in both OpenGLWindow and WWaveformViewer so we can hopefully debug where/when the button release event gets lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mouse key is sticky on scrolling waveform

5 participants